home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / russell / gc.lha / Makefile < prev    next >
Makefile  |  1993-03-31  |  2KB  |  72 lines

  1. OBJS= alloc.o reclaim.o allochblk.o misc.o mach_dep.o os_dep.o mark_roots.o headers.o mark.o obj_map.o black_list.o finalize.o new_hblk.o real_malloc.o dynamic_load.o debug_malloc.o
  2.  
  3. CSRCS= reclaim.c allochblk.c misc.c alloc.c mach_dep.c os_dep.c mark_roots.c headers.c mark.c obj_map.c pcr_interface.c black_list.c finalize.c new_hblk.c real_malloc.c dynamic_load.c debug_malloc.c
  4.  
  5. SRCS= $(CSRCS) mips_mach_dep.s rs6000_mach_dep.s interface.c gc.h gc_headers.h gc_private.h config.h gc_inline.h gc.man if_mach.c if_not_there.c
  6.  
  7. # The following is irrelevant on most systems.  But a few
  8. # versions of make otherwise fork the shell specified in
  9. # the SHELL environment variable.
  10. SHELL= /bin/sh
  11.  
  12. CC= cc
  13. CFLAGS= -O
  14. # Setjmp_test may yield overly optimistic results when compiled
  15. # without optimization.
  16.  
  17. SPECIALCFLAGS = 
  18. # Alternative flags to the C compiler for mach_dep.c.
  19. # Mach_dep.c often doesn't like optimization, and it's
  20. # not time-critical anyway.
  21. # Set SPECIALCFLAGS to -q nodirect_code on Encore.
  22.  
  23. all: gc.a gctest
  24.  
  25. pcr: PCR-Makefile gc_private.h gc_headers.h gc.h config.h mach_dep.o $(SRCS)
  26.     make -f PCR-Makefile depend
  27.     make -f PCR-Makefile
  28.  
  29. $(OBJS) test.o: gc_private.h gc_headers.h gc.h config.h Makefile
  30.  
  31. gc.a: $(OBJS)
  32.     ar ru gc.a $(OBJS)
  33.     ranlib gc.a || cat /dev/null
  34. #    ignore ranlib failure; that usually means it doesn't exist, and isn't needed
  35.  
  36. mach_dep.o: mach_dep.c mips_mach_dep.s rs6000_mach_dep.s if_mach if_not_there
  37.     rm -f mach_dep.o
  38.     ./if_mach MIPS "" as -o mach_dep.o mips_mach_dep.s
  39.     ./if_mach RS6000 "" as -o mach_dep.o rs6000_mach_dep.s
  40.     ./if_not_there mach_dep.o $(CC) -c $(SPECIALCFLAGS) mach_dep.c
  41.  
  42. if_mach: if_mach.c config.h
  43.     $(CC) $(CFLAGS) -o if_mach if_mach.c
  44.     
  45. if_not_there: if_not_there.c
  46.     $(CC) $(CFLAGS) -o if_not_there if_not_there.c
  47.  
  48. clean: 
  49.     rm -f gc.a test.o gctest output-local output-diff $(OBJS) \
  50.           setjmp_test  mon.out gmon.out a.out core
  51.     -rm -f *~
  52.  
  53. gctest: test.o gc.a
  54.     $(CC) $(CFLAGS) -o gctest test.o gc.a
  55.  
  56. # If an optimized setjmp_test generates a segmentation fault,
  57. # odds are your compiler is broken.  Gctest may still work.
  58. # Try compiling setjmp_test unoptimized.
  59. setjmp_test: setjmp_test.c gc.h
  60.     $(CC) $(CFLAGS) -o setjmp_test setjmp_test.c
  61.  
  62. test: setjmp_test gctest
  63.     ./setjmp_test
  64.     ./gctest
  65.  
  66. tar:
  67.     tar cvf gc.tar $(SRCS) Makefile PCR-Makefile OS2_MAKEFILE README test.c setjmp_test.c
  68.     compress gc.tar
  69.  
  70. lint: $(CSRCS) test.c
  71.     lint $(CSRCS) test.c | egrep -v "possible pointer alignment problem|abort|exit"
  72.